📌 Оптимизация работы со строками в C++: std::string_view vs std::string
Привет, друзья! Сегодня хочу обсудить одну из самых частых проблем в C++ – работу со строками. А именно, почему std::string_view – это мощный инструмент, который может значительно ускорить ваш код.
❌ Проблема: Копирование строк Допустим, у вас есть функция, которая принимает строку:
void process(std::string s) { // работа со строкой }
Каждый раз, когда вызывается эта функция, создаётся новая копия строки. Если строка длинная, это дорого по времени и памяти.
✅ Решение: Используем std::string_view С std::string_view можно избежать лишнего копирования:
void process(std::string_view s) { // работа со строкой без копирования }
Теперь s – это просто представление строки, а не её копия. Вы можете передавать как std::string, так и char*, что делает API более гибким.
🚀 Преимущества std::string_view: ✔Не создает копий – работает быстрее. ✔Поддерживает стандартные операции (substr, find и т. д.). ✔Работает с std::string, char*, массивами символов. ✔Идеально подходит для парсинга и работы с текстом.
🔥 Важно помнить: - std::string_view не управляет памятью, так что будьте осторожны с временными строками. - Если строка-источник уничтожена, std::string_view станет невалидным.
📌 Оптимизация работы со строками в C++: std::string_view vs std::string
Привет, друзья! Сегодня хочу обсудить одну из самых частых проблем в C++ – работу со строками. А именно, почему std::string_view – это мощный инструмент, который может значительно ускорить ваш код.
❌ Проблема: Копирование строк Допустим, у вас есть функция, которая принимает строку:
void process(std::string s) { // работа со строкой }
Каждый раз, когда вызывается эта функция, создаётся новая копия строки. Если строка длинная, это дорого по времени и памяти.
✅ Решение: Используем std::string_view С std::string_view можно избежать лишнего копирования:
void process(std::string_view s) { // работа со строкой без копирования }
Теперь s – это просто представление строки, а не её копия. Вы можете передавать как std::string, так и char*, что делает API более гибким.
🚀 Преимущества std::string_view: ✔Не создает копий – работает быстрее. ✔Поддерживает стандартные операции (substr, find и т. д.). ✔Работает с std::string, char*, массивами символов. ✔Идеально подходит для парсинга и работы с текстом.
🔥 Важно помнить: - std::string_view не управляет памятью, так что будьте осторожны с временными строками. - Если строка-источник уничтожена, std::string_view станет невалидным.
I have no inside knowledge of a potential stock listing of the popular anti-Whatsapp messaging app, Telegram. But I know this much, judging by most people I talk to, especially crypto investors, if Telegram ever went public, people would gobble it up. I know I would. I’m waiting for it. So is Sergei Sergienko, who claims he owns $800,000 of Telegram’s pre-initial coin offering (ICO) tokens. “If Telegram does a SPAC IPO, there would be demand for this issue. It would probably outstrip the interest we saw during the ICO. Why? Because as of right now Telegram looks like a liberal application that can accept anyone - right after WhatsApp and others have turn on the censorship,” he says.
Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.